1. Field of the Invention
The invention relates generally to a magnetic random access memory (MRAM) array and particularly to a method and apparatus for writing and reading of magnetic MRAM cells of the magnetic MRAM array.
2. Description of Prior Art
Magnetic random access memory (MRAM) enjoys popularity and wide range of applications among which are replacement of volatile and non-volatile memory. However, reading from and writing to MRAM, particularly those based on spin torque transfer (STT) technology presents challenges that hinder the practical application of MRAM. Namely reading of memory cells that are made of magnetic memory is currently not very reliable. A key contributor has to do with the manner in which a MRAM cell is read. In reading the MRAM cells, reference MRAM cells are employed. Each MRAM cell that is to be accessed for reading is compared to a reference MRAM cell with the result of the comparison determining the state of the MRAM cell, during a read operation. Comparison is done either by comparing the voltage differential across a reference cell and a cell that is to be read or by comparing the resistance of a cell to be read to the resistance of reference cells. The resistance of the reference cell, needs to be between the resistances of cells in the logical states of ‘1’ and ‘0’. These distributions are shown in the graph of FIG. 1.
FIG. 1 shows a graph of the resistance distribution of a typical MTJ for the cases where the MTJ takes on a logical state of ‘1’ and ‘0’. The distributions of the MTJ resistances are Gaussian distributions. The variances of these distributions depend on MTJ processing and grow larger as the size of the memory increases. For very large memories, the two distributions could overlap. In the case of overlap, several reference cells are required. For example one could use one or more reference cells per column rather than one or more reference cells per chip (or “semiconductor device”). The more a reference cell is used, the smaller the variance of distribution of the cells that are grouped together to use the same reference. The resistance of the reference cell in these cases would be the average resistance of the MTJ in the state of 1 and 0, or Rref=(Rh+R1)/2 where “Rref” represents the resistance of the reference cell, “Rh” represents the resistance of a cell to be accessed when the cell is in a high or “1” logical state and “R1” represents the resistance of a cell to be accessed when the cell is in a low or “0” logical state. When a cell with Rh or R1 is compared to this reference cell, the signal generated is equal to:V=I*(Rh−(Rh+R1)/2)=I*((Rh+R1)/2−R1)  Eq. (1)Which isV=I*(Rh−R1)/2  Eq. (2)
In another word, reference cells are manufactured to have predetermined resistances with approximately half of the sum of R1 and Rh. An example of this is if Rh is set to 2 kilo ohms and R1 is set to 1 kilo ohm, the reference resistance would be set to approximately 1.5 kilo ohms such that a MRAM element with a resistance measurement above 1.5 kilo ohms is declared to be at a ‘high’ state and a resistance measurement of less than 1.5 kilo ohms, is declared to be at a ‘low’ state. The differential of R1 and Rh is oftentimes lower than the level required to detect this differential, particularly due to manufacturing limitations, such as process variation. This leads to unreliability during read operations, because the differential voltage is below the detection threshold of the sense ampifier.
As memory arrays become larger, the foregoing problem is further exaggerated because the resistance of a MRAM element is a function of the area thereof. This leads to unreliability when reading of the MRAM element of a MRAM cell.
That is, in current design methods, sensing is carried out by comparing the resistance of the MRAM element that is accessed to a reference MRAM element. In an effort to obtain a differential in the voltage between the MRAM element to be read and the reference MRAM element, different current values for the reference MRAM element is employed versus the current value of the MRAM element to be read or the reference MRAM element is manufactured to have a resistance value equal to (Rh+Rlow)/2. Both of these techniques impose problems one of which in comparing Rh (or “Rlow”) with (Rh+Rlow)/2, which problematically reduces the sensing signal by half and another problem is the variations of the MRAM elements' resistances with respect to the resistance of the reference MRAM element. The variation in the size of the MRAM element is the largest contributor of the variation of the resistance of the MRAM element.
To overcome the foregoing problems, some prior art techniques use more than one reference MRAM element for the entire memory array, such as one or more per column of MRAM elements. However, these techniques still suffer from the statistical variation of the resistance of the MRAM element. Another technique utilizes 2 MRAM elements per cell and programming of the cell in these techniques requires programming one MRAM element to the desired state and the other MRAM to the opposite state. One benefit of the foregoing is that the signal that is generated is: V=I*(Rh−R1) with “V” representing voltage and “I” representing current and “V” being twice as large as the reference. Another benefit is that the statistical variation is reduced. The drawback of these techniques is that the memory cell size is increased.
What is needed is a reliable method and apparatus for reading MRAM cells of a memory array by avoiding relying on reference cell yet requiring decreased programming current or voltage and area.